import { BaseState } from './BaseState';
import { AIController } from '../AIController';

/**
 * AI空闲状态
 * 
 * 功能：
 * 1. 处理AI的空闲行为
 * 2. 检测状态转换条件
 * 3. 管理空闲动画
 * 4. 处理随机行为
 * 
 * 特点：
 * 1. 可配置的空闲时间
 * 2. 随机行为系统
 * 3. 状态过渡逻辑
 * 4. 环境感知响应
 */
export class IdleState extends BaseState {
    private idleTimer: number = 0;
    private idleDuration: number = 0;

    constructor(controller: AIController) {
        super(controller);
        this.resetIdleTimer();
    }

    public enter(): void {
        this.controller.stopMoving();
        this.resetIdleTimer();
    }

    public exit(): void {
        this.idleTimer = 0;
    }

    public update(dt: number): void {
        this.idleTimer += dt;
        
        // 检测附近的威胁
        if (this.controller.detectThreat()) {
            this.controller.changeState('flee');
            return;
        }

        // 检测食物
        if (this.controller.detectFood()) {
            this.controller.changeState('chase');
            return;
        }

        // 闲置时间结束后随机游走
        if (this.idleTimer >= this.idleDuration) {
            this.controller.changeState('wander');
        }
    }

    private resetIdleTimer(): void {
        this.idleTimer = 0;
        this.idleDuration = 1 + Math.random() * 2; // 1-3秒的随机闲置时间
    }
} 